// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.4927
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.EnterpriseServer
{
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    using System.Data;
    using SolidCP.Providers;
    using SolidCP.Providers.Mail;


    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "esMailServersSoap", Namespace = "http://smbsaas/solidcp/enterpriseserver")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
    public partial class esMailServers : Microsoft.Web.Services3.WebServicesClientProtocol
    {

        private System.Threading.SendOrPostCallback GetRawMailAccountsPagedOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailAccountsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailAccountOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailAccountOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailAccountOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailAccountOperationCompleted;

        private System.Threading.SendOrPostCallback GetRawMailForwardingsPagedOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailForwardingsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailForwardingOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailForwardingOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailForwardingOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailForwardingOperationCompleted;

        private System.Threading.SendOrPostCallback GetRawMailGroupsPagedOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailGroupsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailGroupOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailGroupOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailGroupOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailGroupOperationCompleted;

        private System.Threading.SendOrPostCallback GetRawMailListsPagedOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailListsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailListOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailListOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailListOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailListOperationCompleted;

        private System.Threading.SendOrPostCallback GetRawMailDomainsPagedOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailDomainsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailDomainPointersOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailDomainOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailDomainOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailDomainOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailDomainOperationCompleted;

        private System.Threading.SendOrPostCallback AddMailDomainPointerOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailDomainPointerOperationCompleted;

        /// <remarks/>
        public esMailServers()
        {
            this.Url = "http://localhost:8080/EnterpriseServer/esMailServers.asmx";
        }

        /// <remarks/>
        public event GetRawMailAccountsPagedCompletedEventHandler GetRawMailAccountsPagedCompleted;

        /// <remarks/>
        public event GetMailAccountsCompletedEventHandler GetMailAccountsCompleted;

        /// <remarks/>
        public event GetMailAccountCompletedEventHandler GetMailAccountCompleted;

        /// <remarks/>
        public event AddMailAccountCompletedEventHandler AddMailAccountCompleted;

        /// <remarks/>
        public event UpdateMailAccountCompletedEventHandler UpdateMailAccountCompleted;

        /// <remarks/>
        public event DeleteMailAccountCompletedEventHandler DeleteMailAccountCompleted;

        /// <remarks/>
        public event GetRawMailForwardingsPagedCompletedEventHandler GetRawMailForwardingsPagedCompleted;

        /// <remarks/>
        public event GetMailForwardingsCompletedEventHandler GetMailForwardingsCompleted;

        /// <remarks/>
        public event GetMailForwardingCompletedEventHandler GetMailForwardingCompleted;

        /// <remarks/>
        public event AddMailForwardingCompletedEventHandler AddMailForwardingCompleted;

        /// <remarks/>
        public event UpdateMailForwardingCompletedEventHandler UpdateMailForwardingCompleted;

        /// <remarks/>
        public event DeleteMailForwardingCompletedEventHandler DeleteMailForwardingCompleted;

        /// <remarks/>
        public event GetRawMailGroupsPagedCompletedEventHandler GetRawMailGroupsPagedCompleted;

        /// <remarks/>
        public event GetMailGroupsCompletedEventHandler GetMailGroupsCompleted;

        /// <remarks/>
        public event GetMailGroupCompletedEventHandler GetMailGroupCompleted;

        /// <remarks/>
        public event AddMailGroupCompletedEventHandler AddMailGroupCompleted;

        /// <remarks/>
        public event UpdateMailGroupCompletedEventHandler UpdateMailGroupCompleted;

        /// <remarks/>
        public event DeleteMailGroupCompletedEventHandler DeleteMailGroupCompleted;

        /// <remarks/>
        public event GetRawMailListsPagedCompletedEventHandler GetRawMailListsPagedCompleted;

        /// <remarks/>
        public event GetMailListsCompletedEventHandler GetMailListsCompleted;

        /// <remarks/>
        public event GetMailListCompletedEventHandler GetMailListCompleted;

        /// <remarks/>
        public event AddMailListCompletedEventHandler AddMailListCompleted;

        /// <remarks/>
        public event UpdateMailListCompletedEventHandler UpdateMailListCompleted;

        /// <remarks/>
        public event DeleteMailListCompletedEventHandler DeleteMailListCompleted;

        /// <remarks/>
        public event GetRawMailDomainsPagedCompletedEventHandler GetRawMailDomainsPagedCompleted;

        /// <remarks/>
        public event GetMailDomainsCompletedEventHandler GetMailDomainsCompleted;

        /// <remarks/>
        public event GetMailDomainPointersCompletedEventHandler GetMailDomainPointersCompleted;

        /// <remarks/>
        public event GetMailDomainCompletedEventHandler GetMailDomainCompleted;

        /// <remarks/>
        public event AddMailDomainCompletedEventHandler AddMailDomainCompleted;

        /// <remarks/>
        public event UpdateMailDomainCompletedEventHandler UpdateMailDomainCompleted;

        /// <remarks/>
        public event DeleteMailDomainCompletedEventHandler DeleteMailDomainCompleted;

        /// <remarks/>
        public event AddMailDomainPointerCompletedEventHandler AddMailDomainPointerCompleted;

        /// <remarks/>
        public event DeleteMailDomainPointerCompletedEventHandler DeleteMailDomainPointerCompleted;

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetRawMailAccountsPaged", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetRawMailAccountsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            object[] results = this.Invoke("GetRawMailAccountsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows});
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetRawMailAccountsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetRawMailAccountsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, callback, asyncState);
        }

        /// <remarks/>
        public System.Data.DataSet EndGetRawMailAccountsPaged(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public void GetRawMailAccountsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            this.GetRawMailAccountsPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null);
        }

        /// <remarks/>
        public void GetRawMailAccountsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState)
        {
            if ((this.GetRawMailAccountsPagedOperationCompleted == null))
            {
                this.GetRawMailAccountsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawMailAccountsPagedOperationCompleted);
            }
            this.InvokeAsync("GetRawMailAccountsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, this.GetRawMailAccountsPagedOperationCompleted, userState);
        }

        private void OnGetRawMailAccountsPagedOperationCompleted(object arg)
        {
            if ((this.GetRawMailAccountsPagedCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawMailAccountsPagedCompleted(this, new GetRawMailAccountsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailAccounts", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAccount[] GetMailAccounts(int packageId, bool recursive)
        {
            object[] results = this.Invoke("GetMailAccounts", new object[] {
                        packageId,
                        recursive});
            return ((MailAccount[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailAccounts(int packageId, bool recursive, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailAccounts", new object[] {
                        packageId,
                        recursive}, callback, asyncState);
        }

        /// <remarks/>
        public MailAccount[] EndGetMailAccounts(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAccount[])(results[0]));
        }

        /// <remarks/>
        public void GetMailAccountsAsync(int packageId, bool recursive)
        {
            this.GetMailAccountsAsync(packageId, recursive, null);
        }

        /// <remarks/>
        public void GetMailAccountsAsync(int packageId, bool recursive, object userState)
        {
            if ((this.GetMailAccountsOperationCompleted == null))
            {
                this.GetMailAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailAccountsOperationCompleted);
            }
            this.InvokeAsync("GetMailAccounts", new object[] {
                        packageId,
                        recursive}, this.GetMailAccountsOperationCompleted, userState);
        }

        private void OnGetMailAccountsOperationCompleted(object arg)
        {
            if ((this.GetMailAccountsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailAccountsCompleted(this, new GetMailAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailAccount", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAccount GetMailAccount(int itemId)
        {
            object[] results = this.Invoke("GetMailAccount", new object[] {
                        itemId});
            return ((MailAccount)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailAccount(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailAccount", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public MailAccount EndGetMailAccount(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAccount)(results[0]));
        }

        /// <remarks/>
        public void GetMailAccountAsync(int itemId)
        {
            this.GetMailAccountAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailAccountAsync(int itemId, object userState)
        {
            if ((this.GetMailAccountOperationCompleted == null))
            {
                this.GetMailAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailAccountOperationCompleted);
            }
            this.InvokeAsync("GetMailAccount", new object[] {
                        itemId}, this.GetMailAccountOperationCompleted, userState);
        }

        private void OnGetMailAccountOperationCompleted(object arg)
        {
            if ((this.GetMailAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailAccountCompleted(this, new GetMailAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailAccount", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailAccount(MailAccount item)
        {
            object[] results = this.Invoke("AddMailAccount", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailAccount(MailAccount item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailAccount", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailAccount(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailAccountAsync(MailAccount item)
        {
            this.AddMailAccountAsync(item, null);
        }

        /// <remarks/>
        public void AddMailAccountAsync(MailAccount item, object userState)
        {
            if ((this.AddMailAccountOperationCompleted == null))
            {
                this.AddMailAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailAccountOperationCompleted);
            }
            this.InvokeAsync("AddMailAccount", new object[] {
                        item}, this.AddMailAccountOperationCompleted, userState);
        }

        private void OnAddMailAccountOperationCompleted(object arg)
        {
            if ((this.AddMailAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailAccountCompleted(this, new AddMailAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/UpdateMailAccount", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateMailAccount(MailAccount item)
        {
            object[] results = this.Invoke("UpdateMailAccount", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailAccount(MailAccount item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailAccount", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndUpdateMailAccount(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void UpdateMailAccountAsync(MailAccount item)
        {
            this.UpdateMailAccountAsync(item, null);
        }

        /// <remarks/>
        public void UpdateMailAccountAsync(MailAccount item, object userState)
        {
            if ((this.UpdateMailAccountOperationCompleted == null))
            {
                this.UpdateMailAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailAccountOperationCompleted);
            }
            this.InvokeAsync("UpdateMailAccount", new object[] {
                        item}, this.UpdateMailAccountOperationCompleted, userState);
        }

        private void OnUpdateMailAccountOperationCompleted(object arg)
        {
            if ((this.UpdateMailAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailAccountCompleted(this, new UpdateMailAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailAccount", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailAccount(int itemId)
        {
            object[] results = this.Invoke("DeleteMailAccount", new object[] {
                        itemId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailAccount(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailAccount", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailAccount(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailAccountAsync(int itemId)
        {
            this.DeleteMailAccountAsync(itemId, null);
        }

        /// <remarks/>
        public void DeleteMailAccountAsync(int itemId, object userState)
        {
            if ((this.DeleteMailAccountOperationCompleted == null))
            {
                this.DeleteMailAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailAccountOperationCompleted);
            }
            this.InvokeAsync("DeleteMailAccount", new object[] {
                        itemId}, this.DeleteMailAccountOperationCompleted, userState);
        }

        private void OnDeleteMailAccountOperationCompleted(object arg)
        {
            if ((this.DeleteMailAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailAccountCompleted(this, new DeleteMailAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetRawMailForwardingsPaged", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetRawMailForwardingsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            object[] results = this.Invoke("GetRawMailForwardingsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows});
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetRawMailForwardingsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetRawMailForwardingsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, callback, asyncState);
        }

        /// <remarks/>
        public System.Data.DataSet EndGetRawMailForwardingsPaged(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public void GetRawMailForwardingsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            this.GetRawMailForwardingsPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null);
        }

        /// <remarks/>
        public void GetRawMailForwardingsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState)
        {
            if ((this.GetRawMailForwardingsPagedOperationCompleted == null))
            {
                this.GetRawMailForwardingsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawMailForwardingsPagedOperationCompleted);
            }
            this.InvokeAsync("GetRawMailForwardingsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, this.GetRawMailForwardingsPagedOperationCompleted, userState);
        }

        private void OnGetRawMailForwardingsPagedOperationCompleted(object arg)
        {
            if ((this.GetRawMailForwardingsPagedCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawMailForwardingsPagedCompleted(this, new GetRawMailForwardingsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailForwardings", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAlias[] GetMailForwardings(int packageId, bool recursive)
        {
            object[] results = this.Invoke("GetMailForwardings", new object[] {
                        packageId,
                        recursive});
            return ((MailAlias[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailForwardings(int packageId, bool recursive, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailForwardings", new object[] {
                        packageId,
                        recursive}, callback, asyncState);
        }

        /// <remarks/>
        public MailAlias[] EndGetMailForwardings(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAlias[])(results[0]));
        }

        /// <remarks/>
        public void GetMailForwardingsAsync(int packageId, bool recursive)
        {
            this.GetMailForwardingsAsync(packageId, recursive, null);
        }

        /// <remarks/>
        public void GetMailForwardingsAsync(int packageId, bool recursive, object userState)
        {
            if ((this.GetMailForwardingsOperationCompleted == null))
            {
                this.GetMailForwardingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailForwardingsOperationCompleted);
            }
            this.InvokeAsync("GetMailForwardings", new object[] {
                        packageId,
                        recursive}, this.GetMailForwardingsOperationCompleted, userState);
        }

        private void OnGetMailForwardingsOperationCompleted(object arg)
        {
            if ((this.GetMailForwardingsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailForwardingsCompleted(this, new GetMailForwardingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailForwarding", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAlias GetMailForwarding(int itemId)
        {
            object[] results = this.Invoke("GetMailForwarding", new object[] {
                        itemId});
            return ((MailAlias)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailForwarding(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailForwarding", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public MailAlias EndGetMailForwarding(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAlias)(results[0]));
        }

        /// <remarks/>
        public void GetMailForwardingAsync(int itemId)
        {
            this.GetMailForwardingAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailForwardingAsync(int itemId, object userState)
        {
            if ((this.GetMailForwardingOperationCompleted == null))
            {
                this.GetMailForwardingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailForwardingOperationCompleted);
            }
            this.InvokeAsync("GetMailForwarding", new object[] {
                        itemId}, this.GetMailForwardingOperationCompleted, userState);
        }

        private void OnGetMailForwardingOperationCompleted(object arg)
        {
            if ((this.GetMailForwardingCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailForwardingCompleted(this, new GetMailForwardingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailForwarding", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailForwarding(MailAlias item)
        {
            object[] results = this.Invoke("AddMailForwarding", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailForwarding(MailAlias item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailForwarding", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailForwarding(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailForwardingAsync(MailAlias item)
        {
            this.AddMailForwardingAsync(item, null);
        }

        /// <remarks/>
        public void AddMailForwardingAsync(MailAlias item, object userState)
        {
            if ((this.AddMailForwardingOperationCompleted == null))
            {
                this.AddMailForwardingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailForwardingOperationCompleted);
            }
            this.InvokeAsync("AddMailForwarding", new object[] {
                        item}, this.AddMailForwardingOperationCompleted, userState);
        }

        private void OnAddMailForwardingOperationCompleted(object arg)
        {
            if ((this.AddMailForwardingCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailForwardingCompleted(this, new AddMailForwardingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/UpdateMailForwarding", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateMailForwarding(MailAlias item)
        {
            object[] results = this.Invoke("UpdateMailForwarding", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailForwarding(MailAlias item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailForwarding", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndUpdateMailForwarding(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void UpdateMailForwardingAsync(MailAlias item)
        {
            this.UpdateMailForwardingAsync(item, null);
        }

        /// <remarks/>
        public void UpdateMailForwardingAsync(MailAlias item, object userState)
        {
            if ((this.UpdateMailForwardingOperationCompleted == null))
            {
                this.UpdateMailForwardingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailForwardingOperationCompleted);
            }
            this.InvokeAsync("UpdateMailForwarding", new object[] {
                        item}, this.UpdateMailForwardingOperationCompleted, userState);
        }

        private void OnUpdateMailForwardingOperationCompleted(object arg)
        {
            if ((this.UpdateMailForwardingCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailForwardingCompleted(this, new UpdateMailForwardingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailForwarding", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailForwarding(int itemId)
        {
            object[] results = this.Invoke("DeleteMailForwarding", new object[] {
                        itemId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailForwarding(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailForwarding", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailForwarding(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailForwardingAsync(int itemId)
        {
            this.DeleteMailForwardingAsync(itemId, null);
        }

        /// <remarks/>
        public void DeleteMailForwardingAsync(int itemId, object userState)
        {
            if ((this.DeleteMailForwardingOperationCompleted == null))
            {
                this.DeleteMailForwardingOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailForwardingOperationCompleted);
            }
            this.InvokeAsync("DeleteMailForwarding", new object[] {
                        itemId}, this.DeleteMailForwardingOperationCompleted, userState);
        }

        private void OnDeleteMailForwardingOperationCompleted(object arg)
        {
            if ((this.DeleteMailForwardingCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailForwardingCompleted(this, new DeleteMailForwardingCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetRawMailGroupsPaged", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetRawMailGroupsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            object[] results = this.Invoke("GetRawMailGroupsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows});
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetRawMailGroupsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetRawMailGroupsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, callback, asyncState);
        }

        /// <remarks/>
        public System.Data.DataSet EndGetRawMailGroupsPaged(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public void GetRawMailGroupsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            this.GetRawMailGroupsPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null);
        }

        /// <remarks/>
        public void GetRawMailGroupsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState)
        {
            if ((this.GetRawMailGroupsPagedOperationCompleted == null))
            {
                this.GetRawMailGroupsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawMailGroupsPagedOperationCompleted);
            }
            this.InvokeAsync("GetRawMailGroupsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, this.GetRawMailGroupsPagedOperationCompleted, userState);
        }

        private void OnGetRawMailGroupsPagedOperationCompleted(object arg)
        {
            if ((this.GetRawMailGroupsPagedCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawMailGroupsPagedCompleted(this, new GetRawMailGroupsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailGroups", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailGroup[] GetMailGroups(int packageId, bool recursive)
        {
            object[] results = this.Invoke("GetMailGroups", new object[] {
                        packageId,
                        recursive});
            return ((MailGroup[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailGroups(int packageId, bool recursive, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailGroups", new object[] {
                        packageId,
                        recursive}, callback, asyncState);
        }

        /// <remarks/>
        public MailGroup[] EndGetMailGroups(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailGroup[])(results[0]));
        }

        /// <remarks/>
        public void GetMailGroupsAsync(int packageId, bool recursive)
        {
            this.GetMailGroupsAsync(packageId, recursive, null);
        }

        /// <remarks/>
        public void GetMailGroupsAsync(int packageId, bool recursive, object userState)
        {
            if ((this.GetMailGroupsOperationCompleted == null))
            {
                this.GetMailGroupsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailGroupsOperationCompleted);
            }
            this.InvokeAsync("GetMailGroups", new object[] {
                        packageId,
                        recursive}, this.GetMailGroupsOperationCompleted, userState);
        }

        private void OnGetMailGroupsOperationCompleted(object arg)
        {
            if ((this.GetMailGroupsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailGroupsCompleted(this, new GetMailGroupsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailGroup", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailGroup GetMailGroup(int itemId)
        {
            object[] results = this.Invoke("GetMailGroup", new object[] {
                        itemId});
            return ((MailGroup)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailGroup(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailGroup", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public MailGroup EndGetMailGroup(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailGroup)(results[0]));
        }

        /// <remarks/>
        public void GetMailGroupAsync(int itemId)
        {
            this.GetMailGroupAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailGroupAsync(int itemId, object userState)
        {
            if ((this.GetMailGroupOperationCompleted == null))
            {
                this.GetMailGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailGroupOperationCompleted);
            }
            this.InvokeAsync("GetMailGroup", new object[] {
                        itemId}, this.GetMailGroupOperationCompleted, userState);
        }

        private void OnGetMailGroupOperationCompleted(object arg)
        {
            if ((this.GetMailGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailGroupCompleted(this, new GetMailGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailGroup", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailGroup(MailGroup item)
        {
            object[] results = this.Invoke("AddMailGroup", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailGroup(MailGroup item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailGroup", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailGroup(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailGroupAsync(MailGroup item)
        {
            this.AddMailGroupAsync(item, null);
        }

        /// <remarks/>
        public void AddMailGroupAsync(MailGroup item, object userState)
        {
            if ((this.AddMailGroupOperationCompleted == null))
            {
                this.AddMailGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailGroupOperationCompleted);
            }
            this.InvokeAsync("AddMailGroup", new object[] {
                        item}, this.AddMailGroupOperationCompleted, userState);
        }

        private void OnAddMailGroupOperationCompleted(object arg)
        {
            if ((this.AddMailGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailGroupCompleted(this, new AddMailGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/UpdateMailGroup", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateMailGroup(MailGroup item)
        {
            object[] results = this.Invoke("UpdateMailGroup", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailGroup(MailGroup item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailGroup", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndUpdateMailGroup(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void UpdateMailGroupAsync(MailGroup item)
        {
            this.UpdateMailGroupAsync(item, null);
        }

        /// <remarks/>
        public void UpdateMailGroupAsync(MailGroup item, object userState)
        {
            if ((this.UpdateMailGroupOperationCompleted == null))
            {
                this.UpdateMailGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailGroupOperationCompleted);
            }
            this.InvokeAsync("UpdateMailGroup", new object[] {
                        item}, this.UpdateMailGroupOperationCompleted, userState);
        }

        private void OnUpdateMailGroupOperationCompleted(object arg)
        {
            if ((this.UpdateMailGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailGroupCompleted(this, new UpdateMailGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailGroup", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailGroup(int itemId)
        {
            object[] results = this.Invoke("DeleteMailGroup", new object[] {
                        itemId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailGroup(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailGroup", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailGroup(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailGroupAsync(int itemId)
        {
            this.DeleteMailGroupAsync(itemId, null);
        }

        /// <remarks/>
        public void DeleteMailGroupAsync(int itemId, object userState)
        {
            if ((this.DeleteMailGroupOperationCompleted == null))
            {
                this.DeleteMailGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailGroupOperationCompleted);
            }
            this.InvokeAsync("DeleteMailGroup", new object[] {
                        itemId}, this.DeleteMailGroupOperationCompleted, userState);
        }

        private void OnDeleteMailGroupOperationCompleted(object arg)
        {
            if ((this.DeleteMailGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailGroupCompleted(this, new DeleteMailGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetRawMailListsPaged", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetRawMailListsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            object[] results = this.Invoke("GetRawMailListsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows});
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetRawMailListsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetRawMailListsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, callback, asyncState);
        }

        /// <remarks/>
        public System.Data.DataSet EndGetRawMailListsPaged(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public void GetRawMailListsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            this.GetRawMailListsPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null);
        }

        /// <remarks/>
        public void GetRawMailListsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState)
        {
            if ((this.GetRawMailListsPagedOperationCompleted == null))
            {
                this.GetRawMailListsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawMailListsPagedOperationCompleted);
            }
            this.InvokeAsync("GetRawMailListsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, this.GetRawMailListsPagedOperationCompleted, userState);
        }

        private void OnGetRawMailListsPagedOperationCompleted(object arg)
        {
            if ((this.GetRawMailListsPagedCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawMailListsPagedCompleted(this, new GetRawMailListsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailLists", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailList[] GetMailLists(int packageId, bool recursive)
        {
            object[] results = this.Invoke("GetMailLists", new object[] {
                        packageId,
                        recursive});
            return ((MailList[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailLists(int packageId, bool recursive, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailLists", new object[] {
                        packageId,
                        recursive}, callback, asyncState);
        }

        /// <remarks/>
        public MailList[] EndGetMailLists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailList[])(results[0]));
        }

        /// <remarks/>
        public void GetMailListsAsync(int packageId, bool recursive)
        {
            this.GetMailListsAsync(packageId, recursive, null);
        }

        /// <remarks/>
        public void GetMailListsAsync(int packageId, bool recursive, object userState)
        {
            if ((this.GetMailListsOperationCompleted == null))
            {
                this.GetMailListsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailListsOperationCompleted);
            }
            this.InvokeAsync("GetMailLists", new object[] {
                        packageId,
                        recursive}, this.GetMailListsOperationCompleted, userState);
        }

        private void OnGetMailListsOperationCompleted(object arg)
        {
            if ((this.GetMailListsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailListsCompleted(this, new GetMailListsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailList", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailList GetMailList(int itemId)
        {
            object[] results = this.Invoke("GetMailList", new object[] {
                        itemId});
            return ((MailList)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailList(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailList", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public MailList EndGetMailList(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailList)(results[0]));
        }

        /// <remarks/>
        public void GetMailListAsync(int itemId)
        {
            this.GetMailListAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailListAsync(int itemId, object userState)
        {
            if ((this.GetMailListOperationCompleted == null))
            {
                this.GetMailListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailListOperationCompleted);
            }
            this.InvokeAsync("GetMailList", new object[] {
                        itemId}, this.GetMailListOperationCompleted, userState);
        }

        private void OnGetMailListOperationCompleted(object arg)
        {
            if ((this.GetMailListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailListCompleted(this, new GetMailListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailList", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailList(MailList item)
        {
            object[] results = this.Invoke("AddMailList", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailList(MailList item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailList", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailList(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailListAsync(MailList item)
        {
            this.AddMailListAsync(item, null);
        }

        /// <remarks/>
        public void AddMailListAsync(MailList item, object userState)
        {
            if ((this.AddMailListOperationCompleted == null))
            {
                this.AddMailListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailListOperationCompleted);
            }
            this.InvokeAsync("AddMailList", new object[] {
                        item}, this.AddMailListOperationCompleted, userState);
        }

        private void OnAddMailListOperationCompleted(object arg)
        {
            if ((this.AddMailListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailListCompleted(this, new AddMailListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/UpdateMailList", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateMailList(MailList item)
        {
            object[] results = this.Invoke("UpdateMailList", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailList(MailList item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailList", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndUpdateMailList(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void UpdateMailListAsync(MailList item)
        {
            this.UpdateMailListAsync(item, null);
        }

        /// <remarks/>
        public void UpdateMailListAsync(MailList item, object userState)
        {
            if ((this.UpdateMailListOperationCompleted == null))
            {
                this.UpdateMailListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailListOperationCompleted);
            }
            this.InvokeAsync("UpdateMailList", new object[] {
                        item}, this.UpdateMailListOperationCompleted, userState);
        }

        private void OnUpdateMailListOperationCompleted(object arg)
        {
            if ((this.UpdateMailListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailListCompleted(this, new UpdateMailListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailList", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailList(int itemId)
        {
            object[] results = this.Invoke("DeleteMailList", new object[] {
                        itemId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailList(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailList", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailList(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailListAsync(int itemId)
        {
            this.DeleteMailListAsync(itemId, null);
        }

        /// <remarks/>
        public void DeleteMailListAsync(int itemId, object userState)
        {
            if ((this.DeleteMailListOperationCompleted == null))
            {
                this.DeleteMailListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailListOperationCompleted);
            }
            this.InvokeAsync("DeleteMailList", new object[] {
                        itemId}, this.DeleteMailListOperationCompleted, userState);
        }

        private void OnDeleteMailListOperationCompleted(object arg)
        {
            if ((this.DeleteMailListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailListCompleted(this, new DeleteMailListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetRawMailDomainsPaged", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public System.Data.DataSet GetRawMailDomainsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            object[] results = this.Invoke("GetRawMailDomainsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows});
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetRawMailDomainsPaged(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetRawMailDomainsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, callback, asyncState);
        }

        /// <remarks/>
        public System.Data.DataSet EndGetRawMailDomainsPaged(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((System.Data.DataSet)(results[0]));
        }

        /// <remarks/>
        public void GetRawMailDomainsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
        {
            this.GetRawMailDomainsPagedAsync(packageId, filterColumn, filterValue, sortColumn, startRow, maximumRows, null);
        }

        /// <remarks/>
        public void GetRawMailDomainsPagedAsync(int packageId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows, object userState)
        {
            if ((this.GetRawMailDomainsPagedOperationCompleted == null))
            {
                this.GetRawMailDomainsPagedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRawMailDomainsPagedOperationCompleted);
            }
            this.InvokeAsync("GetRawMailDomainsPaged", new object[] {
                        packageId,
                        filterColumn,
                        filterValue,
                        sortColumn,
                        startRow,
                        maximumRows}, this.GetRawMailDomainsPagedOperationCompleted, userState);
        }

        private void OnGetRawMailDomainsPagedOperationCompleted(object arg)
        {
            if ((this.GetRawMailDomainsPagedCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetRawMailDomainsPagedCompleted(this, new GetRawMailDomainsPagedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailDomains", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailDomain[] GetMailDomains(int packageId, bool recursive)
        {
            object[] results = this.Invoke("GetMailDomains", new object[] {
                        packageId,
                        recursive});
            return ((MailDomain[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailDomains(int packageId, bool recursive, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailDomains", new object[] {
                        packageId,
                        recursive}, callback, asyncState);
        }

        /// <remarks/>
        public MailDomain[] EndGetMailDomains(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailDomain[])(results[0]));
        }

        /// <remarks/>
        public void GetMailDomainsAsync(int packageId, bool recursive)
        {
            this.GetMailDomainsAsync(packageId, recursive, null);
        }

        /// <remarks/>
        public void GetMailDomainsAsync(int packageId, bool recursive, object userState)
        {
            if ((this.GetMailDomainsOperationCompleted == null))
            {
                this.GetMailDomainsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailDomainsOperationCompleted);
            }
            this.InvokeAsync("GetMailDomains", new object[] {
                        packageId,
                        recursive}, this.GetMailDomainsOperationCompleted, userState);
        }

        private void OnGetMailDomainsOperationCompleted(object arg)
        {
            if ((this.GetMailDomainsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailDomainsCompleted(this, new GetMailDomainsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailDomainPointers", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public DomainInfo[] GetMailDomainPointers(int itemId)
        {
            object[] results = this.Invoke("GetMailDomainPointers", new object[] {
                        itemId});
            return ((DomainInfo[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailDomainPointers(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailDomainPointers", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public DomainInfo[] EndGetMailDomainPointers(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((DomainInfo[])(results[0]));
        }

        /// <remarks/>
        public void GetMailDomainPointersAsync(int itemId)
        {
            this.GetMailDomainPointersAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailDomainPointersAsync(int itemId, object userState)
        {
            if ((this.GetMailDomainPointersOperationCompleted == null))
            {
                this.GetMailDomainPointersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailDomainPointersOperationCompleted);
            }
            this.InvokeAsync("GetMailDomainPointers", new object[] {
                        itemId}, this.GetMailDomainPointersOperationCompleted, userState);
        }

        private void OnGetMailDomainPointersOperationCompleted(object arg)
        {
            if ((this.GetMailDomainPointersCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailDomainPointersCompleted(this, new GetMailDomainPointersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/GetMailDomain", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailDomain GetMailDomain(int itemId)
        {
            object[] results = this.Invoke("GetMailDomain", new object[] {
                        itemId});
            return ((MailDomain)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailDomain(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailDomain", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public MailDomain EndGetMailDomain(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailDomain)(results[0]));
        }

        /// <remarks/>
        public void GetMailDomainAsync(int itemId)
        {
            this.GetMailDomainAsync(itemId, null);
        }

        /// <remarks/>
        public void GetMailDomainAsync(int itemId, object userState)
        {
            if ((this.GetMailDomainOperationCompleted == null))
            {
                this.GetMailDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailDomainOperationCompleted);
            }
            this.InvokeAsync("GetMailDomain", new object[] {
                        itemId}, this.GetMailDomainOperationCompleted, userState);
        }

        private void OnGetMailDomainOperationCompleted(object arg)
        {
            if ((this.GetMailDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailDomainCompleted(this, new GetMailDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailDomain", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailDomain(MailDomain item)
        {
            object[] results = this.Invoke("AddMailDomain", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailDomain(MailDomain item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailDomain", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailDomain(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailDomainAsync(MailDomain item)
        {
            this.AddMailDomainAsync(item, null);
        }

        /// <remarks/>
        public void AddMailDomainAsync(MailDomain item, object userState)
        {
            if ((this.AddMailDomainOperationCompleted == null))
            {
                this.AddMailDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailDomainOperationCompleted);
            }
            this.InvokeAsync("AddMailDomain", new object[] {
                        item}, this.AddMailDomainOperationCompleted, userState);
        }

        private void OnAddMailDomainOperationCompleted(object arg)
        {
            if ((this.AddMailDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailDomainCompleted(this, new AddMailDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/UpdateMailDomain", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int UpdateMailDomain(MailDomain item)
        {
            object[] results = this.Invoke("UpdateMailDomain", new object[] {
                        item});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailDomain(MailDomain item, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailDomain", new object[] {
                        item}, callback, asyncState);
        }

        /// <remarks/>
        public int EndUpdateMailDomain(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void UpdateMailDomainAsync(MailDomain item)
        {
            this.UpdateMailDomainAsync(item, null);
        }

        /// <remarks/>
        public void UpdateMailDomainAsync(MailDomain item, object userState)
        {
            if ((this.UpdateMailDomainOperationCompleted == null))
            {
                this.UpdateMailDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailDomainOperationCompleted);
            }
            this.InvokeAsync("UpdateMailDomain", new object[] {
                        item}, this.UpdateMailDomainOperationCompleted, userState);
        }

        private void OnUpdateMailDomainOperationCompleted(object arg)
        {
            if ((this.UpdateMailDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailDomainCompleted(this, new UpdateMailDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailDomain", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailDomain(int itemId)
        {
            object[] results = this.Invoke("DeleteMailDomain", new object[] {
                        itemId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailDomain(int itemId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailDomain", new object[] {
                        itemId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailDomain(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailDomainAsync(int itemId)
        {
            this.DeleteMailDomainAsync(itemId, null);
        }

        /// <remarks/>
        public void DeleteMailDomainAsync(int itemId, object userState)
        {
            if ((this.DeleteMailDomainOperationCompleted == null))
            {
                this.DeleteMailDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailDomainOperationCompleted);
            }
            this.InvokeAsync("DeleteMailDomain", new object[] {
                        itemId}, this.DeleteMailDomainOperationCompleted, userState);
        }

        private void OnDeleteMailDomainOperationCompleted(object arg)
        {
            if ((this.DeleteMailDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailDomainCompleted(this, new DeleteMailDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/AddMailDomainPointer", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int AddMailDomainPointer(int itemId, int domainId)
        {
            object[] results = this.Invoke("AddMailDomainPointer", new object[] {
                        itemId,
                        domainId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddMailDomainPointer(int itemId, int domainId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddMailDomainPointer", new object[] {
                        itemId,
                        domainId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndAddMailDomainPointer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void AddMailDomainPointerAsync(int itemId, int domainId)
        {
            this.AddMailDomainPointerAsync(itemId, domainId, null);
        }

        /// <remarks/>
        public void AddMailDomainPointerAsync(int itemId, int domainId, object userState)
        {
            if ((this.AddMailDomainPointerOperationCompleted == null))
            {
                this.AddMailDomainPointerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddMailDomainPointerOperationCompleted);
            }
            this.InvokeAsync("AddMailDomainPointer", new object[] {
                        itemId,
                        domainId}, this.AddMailDomainPointerOperationCompleted, userState);
        }

        private void OnAddMailDomainPointerOperationCompleted(object arg)
        {
            if ((this.AddMailDomainPointerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddMailDomainPointerCompleted(this, new AddMailDomainPointerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/enterpriseserver/DeleteMailDomainPointer", RequestNamespace = "http://smbsaas/solidcp/enterpriseserver", ResponseNamespace = "http://smbsaas/solidcp/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int DeleteMailDomainPointer(int itemId, int domainId)
        {
            object[] results = this.Invoke("DeleteMailDomainPointer", new object[] {
                        itemId,
                        domainId});
            return ((int)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailDomainPointer(int itemId, int domainId, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailDomainPointer", new object[] {
                        itemId,
                        domainId}, callback, asyncState);
        }

        /// <remarks/>
        public int EndDeleteMailDomainPointer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }

        /// <remarks/>
        public void DeleteMailDomainPointerAsync(int itemId, int domainId)
        {
            this.DeleteMailDomainPointerAsync(itemId, domainId, null);
        }

        /// <remarks/>
        public void DeleteMailDomainPointerAsync(int itemId, int domainId, object userState)
        {
            if ((this.DeleteMailDomainPointerOperationCompleted == null))
            {
                this.DeleteMailDomainPointerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailDomainPointerOperationCompleted);
            }
            this.InvokeAsync("DeleteMailDomainPointer", new object[] {
                        itemId,
                        domainId}, this.DeleteMailDomainPointerOperationCompleted, userState);
        }

        private void OnDeleteMailDomainPointerOperationCompleted(object arg)
        {
            if ((this.DeleteMailDomainPointerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailDomainPointerCompleted(this, new DeleteMailDomainPointerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        public new void CancelAsync(object userState)
        {
            base.CancelAsync(userState);
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetRawMailAccountsPagedCompletedEventHandler(object sender, GetRawMailAccountsPagedCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawMailAccountsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetRawMailAccountsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public System.Data.DataSet Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailAccountsCompletedEventHandler(object sender, GetMailAccountsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAccount[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAccount[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailAccountCompletedEventHandler(object sender, GetMailAccountCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAccount Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAccount)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailAccountCompletedEventHandler(object sender, AddMailAccountCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateMailAccountCompletedEventHandler(object sender, UpdateMailAccountCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateMailAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateMailAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailAccountCompletedEventHandler(object sender, DeleteMailAccountCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetRawMailForwardingsPagedCompletedEventHandler(object sender, GetRawMailForwardingsPagedCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawMailForwardingsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetRawMailForwardingsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public System.Data.DataSet Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailForwardingsCompletedEventHandler(object sender, GetMailForwardingsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailForwardingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailForwardingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAlias[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAlias[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailForwardingCompletedEventHandler(object sender, GetMailForwardingCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailForwardingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailForwardingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAlias Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAlias)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailForwardingCompletedEventHandler(object sender, AddMailForwardingCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailForwardingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailForwardingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateMailForwardingCompletedEventHandler(object sender, UpdateMailForwardingCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateMailForwardingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateMailForwardingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailForwardingCompletedEventHandler(object sender, DeleteMailForwardingCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailForwardingCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailForwardingCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetRawMailGroupsPagedCompletedEventHandler(object sender, GetRawMailGroupsPagedCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawMailGroupsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetRawMailGroupsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public System.Data.DataSet Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailGroupsCompletedEventHandler(object sender, GetMailGroupsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailGroupsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailGroupsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailGroup[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailGroup[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailGroupCompletedEventHandler(object sender, GetMailGroupCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailGroup Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailGroup)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailGroupCompletedEventHandler(object sender, AddMailGroupCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateMailGroupCompletedEventHandler(object sender, UpdateMailGroupCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateMailGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateMailGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailGroupCompletedEventHandler(object sender, DeleteMailGroupCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetRawMailListsPagedCompletedEventHandler(object sender, GetRawMailListsPagedCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawMailListsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetRawMailListsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public System.Data.DataSet Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailListsCompletedEventHandler(object sender, GetMailListsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailListsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailListsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailList[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailList[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailListCompletedEventHandler(object sender, GetMailListCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailList Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailList)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailListCompletedEventHandler(object sender, AddMailListCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateMailListCompletedEventHandler(object sender, UpdateMailListCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateMailListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateMailListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailListCompletedEventHandler(object sender, DeleteMailListCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetRawMailDomainsPagedCompletedEventHandler(object sender, GetRawMailDomainsPagedCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetRawMailDomainsPagedCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetRawMailDomainsPagedCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public System.Data.DataSet Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((System.Data.DataSet)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailDomainsCompletedEventHandler(object sender, GetMailDomainsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailDomainsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailDomain[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailDomain[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailDomainPointersCompletedEventHandler(object sender, GetMailDomainPointersCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailDomainPointersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailDomainPointersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public DomainInfo[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((DomainInfo[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetMailDomainCompletedEventHandler(object sender, GetMailDomainCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetMailDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetMailDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailDomain Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailDomain)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailDomainCompletedEventHandler(object sender, AddMailDomainCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateMailDomainCompletedEventHandler(object sender, UpdateMailDomainCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateMailDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateMailDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailDomainCompletedEventHandler(object sender, DeleteMailDomainCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddMailDomainPointerCompletedEventHandler(object sender, AddMailDomainPointerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddMailDomainPointerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddMailDomainPointerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteMailDomainPointerCompletedEventHandler(object sender, DeleteMailDomainPointerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteMailDomainPointerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteMailDomainPointerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public int Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
    }
}
